/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package managers;


import DAO.ProyectoDAO;
import JPA.JPAProyectoDAO;
import domain.Entity.EntityProyecto;
import domain.Entity.EntityGestor;
import java.util.Date;
import java.util.List;
import javax.jws.WebMethod;
import javax.jws.WebService;
/**
 *
 * @author jorge
 */

public class ProyectoManager {
    
     private ProyectoDAO proyecto;
     private static ProyectoManager instance = null;
        
        
     public static synchronized ProyectoManager getInstance(){
		if(instance == null){
			instance = new ProyectoManager();
			return instance;
		}
		else
			return instance;
	}
        
	
    public ProyectoManager(){
	this.proyecto =new JPAProyectoDAO();
    }
      
         
    public void addProyecto(String nombreProyecto, String descripcion, Double precio, int horasMax, Date fecIni, Date fecFin, EntityGestor gestor) {
        
        EntityProyecto ep = new EntityProyecto();
            ep.setNombreProyecto(nombreProyecto);
            ep.setDescripcion(descripcion);
            ep.setPrecio_hora(precio);
            ep.setHoras_maximas(horasMax);
            ep.setFecha_ini(fecIni);
            ep.setFecha_fin(fecFin);
            ep.setCompletado(false);
            ep.setEg(gestor);
            
            proyecto.anadirProyecto(ep);
    }

        
        public EntityProyecto get(String nombre){
         return  this.proyecto.obtenerProyecto(nombre);  
        }

   public void modificarProyecto(EntityProyecto ep, String nombreProyecto, String descripcion, double precio, int horasMax, Date fecIni, Date fecFin, boolean comp) {
        
        ep.setNombreProyecto(nombreProyecto);
        ep.setDescripcion(descripcion);
        ep.setPrecio_hora(precio);
        ep.setHoras_maximas(horasMax);
        ep.setFecha_ini(fecIni);
        ep.setFecha_fin(fecFin);
        ep.setCompletado(comp);
        
        proyecto.modificarProyecto(ep);
    }
        
        public List mostrarProyectosGestor(Long dni){
            return this.proyecto.ProyectosGestor(dni);
        }
        
        public void borrarProyecto(Long idProyecto){
            this.proyecto.borrarProyecto(idProyecto);
        }
        
        
        public EntityProyecto obtenerProyecto(long idProyecto){
            return this.proyecto.obtenerProyecto(idProyecto);
        }
}
